home *** CD-ROM | disk | FTP | other *** search
/ Programmers Heaven 2 / Programmers Heaven 2.iso / files / graphics / library / wgt51_r2.zip / WGT5 / H / WGTSPR.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-08-03  |  3.1 KB  |  87 lines

  1. #ifndef _WGTSPR_
  2. #define _WGTSPR_
  3.  
  4. #include <wgt5.h>
  5.  
  6. /* 
  7.    WordUp Graphics Toolkit V5.0  Sprite Routines
  8.    Copyright 1995 Egerter Software
  9. */
  10.  
  11. #ifdef __cplusplus
  12.   extern "C" {
  13. #endif
  14.  
  15. /* The following defines should be altered to suit your program needs */
  16. #define MAX_SPRITES        100
  17. #define MAX_ANIMATION      40
  18. #define MAX_MOVE           15
  19.  
  20. typedef struct
  21.  {
  22.   unsigned char num;          /* Sprite number shown */
  23.   short x, y;                 /* Coordinates on screen */
  24.   unsigned char on;           /* On/Off, for visibility */
  25.  
  26.   int ox, oy, ox2, oy2;
  27.  
  28.   signed char animon;                      /* Animation on/off */
  29.   short animation_images[MAX_ANIMATION];   /* Animation numbers */
  30.   unsigned char animation_speeds[MAX_ANIMATION]; /* Animation speeds */
  31.   signed char current_animation;           /* Current animation counter */
  32.   unsigned char animation_count;           /* Delay count for animation */
  33.  
  34.   signed char movex_on;                    /* X movement on/off */
  35.   short movex_distance[MAX_MOVE];          /* X distance per frame */
  36.   short movex_number[MAX_MOVE];            /* Number of times to move */
  37.   unsigned char movex_speed[MAX_MOVE];     /* Delay between each movement */
  38.   signed char current_movex;               /* Movement index */
  39.   short current_movex_number;              /* Number of times moved */
  40.   unsigned char movex_count;               /* Delay count for X movement */
  41.  
  42.   signed char movey_on;                    /* Y movement on/off */
  43.   short movey_distance[MAX_MOVE];          /* Y distance per frame */
  44.   short movey_number[MAX_MOVE];            /* Number of times to move */
  45.   unsigned char movey_speed[MAX_MOVE];     /* Delay between each movement */
  46.   signed char current_movey;               /* Movement index */
  47.   short current_movey_number;              /* Number of times moved */
  48.   unsigned char movey_count;               /* Delay count for Y movement */
  49.  } sprite_object;
  50.  
  51. extern sprite_object s[MAX_SPRITES];
  52.  
  53. extern block backgroundscreen;          /* Holds the constant background */
  54. extern block spritescreen;              /* Work buffer */
  55.  
  56. extern short maxsprite;
  57.  
  58. extern short tempx1, tempx2, tempy1, tempy2;
  59.  
  60. extern block *sprite_images;
  61.  
  62. void animate (short spritenum, char *animation_sequence);
  63. void animoff (short spritenum);
  64. void animon (short spritenum);
  65. void copy_sprites (void);
  66. void deinitialize_sprites (void);
  67. void draw_sprites (int movement_multiplier);
  68. void erase_sprites (void);
  69. void expand_dirty_rectangle (int sprite_num, int x, int y, int x2, int y2);
  70. void initialize_sprites (block *sprite_blocks);
  71. void movex (short spritenum, char *movement_sequence);
  72. void movexoff (short spritenum);
  73. void movexon (short spritenum);
  74. void movey (short spritenum, char *movement_sequence);
  75. void moveyoff (short spritenum);
  76. void moveyon (short spritenum);
  77. short overlap (short spritenum_1, short spritenum_2);
  78. void spriteoff (short spritenum);
  79. void spriteon (short spritenum, short xcoord, short ycoord,
  80.                       short arrnumber);
  81.  
  82. #ifdef __cplusplus
  83. }
  84. #endif
  85.  
  86. #endif
  87.